package com.etone.smartAudit.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.etone.smartAudit.domain.ProjectFile;
import com.etone.smartAudit.dto.projectFile.SearchFileDto;
import com.etone.smartAudit.dto.projectFile.UpdateDTO;
import com.etone.smartAudit.vo.projectFile.ProjectFileDirVO;
import com.etone.smartAudit.vo.projectFile.ProjectFileVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 项目文件表 项目文件表 Mapper 接口
 * </p>
 *
 * @author jiayen
 * @since 2021-05-08
 */
@Mapper
public interface ProjectFileMapper extends BaseMapper<ProjectFile> {

    /***
     * 获取指定的项目id的所属文件夹
     * @param projectIds
     * @return
     */
    List<ProjectFileDirVO> getFileDirs(List<Integer> projectIds);

    /**
     * 获取子级文件或者文件夹
     * @param pId
     * @param fileName
     * @return
     */
    List<ProjectFileVO> getFilesByPId(@Param("pId") Integer pId, @Param("projectId") Integer projectId, @Param("fileName") String fileName, @Param("isPrivate")  Integer isPrivate, @Param("userId")  Integer userId);

    /***
     * 获取个人文件夹
     * @param userId
     * @return
     */
    List<ProjectFileDirVO> getPersonFileDirs(@Param("userId") Integer userId);

    List<ProjectFileDirVO> getPersonFiles(@Param("userId") Integer userId);

    List<ProjectFileVO>  searchFile(@Param("search") SearchFileDto search);

    List<UpdateDTO> getUpdateList();

    /***
     * 获取当前登录用户的文件和文件夹
     * @param userId
     * @return
     */
    List<ProjectFileDirVO> getMyFiles(@Param("userId") Integer userId);
}
